/*******************************************************************************
 * FilePath    : \Software\Examples\MS1656_app_UART\Src\BSP\BSP.h
 * Version     : 1.0
 * Brief       : 
 * Author      : AndrewHu
 * Company     : Shanghai MacroGiga Electronics CO.,Ltd
 * Email       : Hubinbo@macrogiga.com
 * Date        : 2020-04-03 15:06:14
 * LastEditors : AndrewHu
 * LastEditTime: 2020-06-23 17:09:02
 * Description : 
 ******************************************************************************/
#ifndef _BSP_H_
#define _BSP_H_
/* Includes ------------------------------------------------------------------*/
#include <Includes.h>
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
//通讯接口选择
#define Interface_Uart0 0x00 //PD3-RX,PD4-TX
#define Interface_Uart1 0x01 //PD5-TX,PD6-RX,实际用的是UART0
#define Interface_I2C 0x02   //PD5-SCL,PD6-SDA，暂时未实现功能
//运行模式定义
#define RunningMode_Normal 0x00
#define RunningMode_Sleep 0x01
#define RunningMode_Stop 0x02
#define RunningMode_Standby 0x03
//主循环计时
#define mainDelay 0x0a //主循环内计时
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function ----------------------------------------------------------*/
/*******************************************************************************
 * Function    : GetInterfaceStatus
 * Brief       : 获取通讯方式
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-04-17 12:09:56
 * Description : 
 ******************************************************************************/
u8 GetInterfaceStatus(void);
/*******************************************************************************
 * Function    : ClearEnterSleepDelay
 * Brief       : 延时进入休眠
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-04-17 13:28:22
 * Description : 
 ******************************************************************************/
void ClearEnterSleepDelay(void);
/*******************************************************************************
 * Function    : AH_SystemClock_Config
 * Brief       : 系统时钟初始化函数，初始化之前先复位所有时钟
 * Parameter   : {u8} freq 0-4M,1-24M
 * Returns     : 
 * Date        : 2020-04-03 15:29:16
 * Description : 
 ******************************************************************************/
void AH_SystemClock_Config(u8 freq);
/*******************************************************************************
 * Function    : Mcu_WakeUp
 * Brief       : 芯片退出低功耗
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-06-23 15:42:08
 * Description : 
 ******************************************************************************/
void Mcu_WakeUp(u8 status);
/*******************************************************************************
 * Function    : GetRunningMode
 * Brief       : 获取当前运行模式
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-04-06 00:41:31
 * Description : 
 ******************************************************************************/
u8 GetRunningMode(void);
/*******************************************************************************
 * Function    : GetRunningStatus
 * Brief       : 获取当前运行状态
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-04-17 13:37:49
 * Description : 
 ******************************************************************************/
u8 GetRunningStatus(void);
/*******************************************************************************
 * Function    : SetRunningMode
 * Brief       : 设定运行模式
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-04-17 13:37:51
 * Description : 
 ******************************************************************************/
void SetRunningMode(u8 mode);
/*******************************************************************************
 * Function    : SetRunningStatus
 * Brief       : 
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-04-23 15:53:09
 * Description : 
 ******************************************************************************/
void SetRunningStatus(u8 status);
/*******************************************************************************
 * Function    : BSP_Init
 * Brief       : 硬件IO等初始化
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-04-03 15:56:40
 * Description : 
 ******************************************************************************/
void BSP_Init(void);
/*******************************************************************************
 * Function    : IrqMcuGotoSleepAndWakeup
 * Brief       : 运行模式检查及判断
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-04-03 15:58:39
 * Description : 
 ******************************************************************************/
void IrqMcuGotoSleepAndWakeup(void);
/*******************************************************************************
 * Function    : 
 * Brief       : 
 * Parameter   : 
 * Returns     : 
 * Date        : 2020-04-17 14:12:48
 * Description : 
 ******************************************************************************/
void SysClk8to48(void);
void SysClk48to8(void);
void Error_Handler(void);
/* extern --------------------------------------------------------------------*/
extern void mg_activate(unsigned char value);
extern u8 mg_writeBuf(u8 reg, u8 const *pBuf, u8 len);

#endif
